package br.unirio.webdisco.dao.bo;

import java.util.ArrayList;
import java.util.List;

import br.unirio.webdisco.dao.conn.BasePostgresDAO;
import br.unirio.webdisco.dao.conn.DAOFactory;
import br.unirio.webdisco.dao.impl.DoencaPostgresDAO;
import br.unirio.webdisco.entity.Doenca;
import br.unirio.webdisco.dao.bo.BaseBO;

public class DoencaBO extends BaseBO<Doenca> {
	private static DoencaBO instancia;
	
	public static DoencaBO getInstance() {
		if (instancia == null)
			instancia = new DoencaBO();
		return instancia;
	}
	
	public Doenca consultarDoenca(String u, String p) throws Exception {
		BasePostgresDAO<Doenca> dao = DAOFactory.getInstance().getDoencaDAO();
		return ((DoencaPostgresDAO) dao).consultarDoenca(u, p);
	}

	@Override
	public void incluir(Doenca doenca) throws Exception {
		BasePostgresDAO<Doenca> dao = DAOFactory.getInstance().getDoencaDAO();
		dao.incluir(doenca);
	}

	@Override
	public void alterar(Doenca doenca) throws Exception {
		BasePostgresDAO<Doenca> dao = DAOFactory.getInstance().getDoencaDAO();
		dao.alterar(doenca);
	}

	@Override
	public void excluir(Doenca doenca) throws Exception {
		BasePostgresDAO<Doenca> dao = DAOFactory.getInstance().getDoencaDAO();
		dao.excluir(doenca);
	}

	@Override
	public Integer count() throws Exception {
		BasePostgresDAO<Doenca> dao = DAOFactory.getInstance().getDoencaDAO();
		return dao.count();
	}
	
	@Override
	public List<Doenca> listar(Integer paginaTamanho, Integer paginaAtual) throws Exception {
		BasePostgresDAO<Doenca> dao = DAOFactory.getInstance().getDoencaDAO();
		return dao.listar(paginaTamanho, paginaAtual);
	}

	@Override
	public Doenca consultarPorId(Integer id) throws Exception {
		BasePostgresDAO<Doenca> dao = DAOFactory.getInstance().getDoencaDAO();
		return dao.consultarPorId(id);
	}

	@Override
	public List<Doenca> consultar(String parametros) throws Exception {
		BasePostgresDAO<Doenca> dao = DAOFactory.getInstance().getDoencaDAO();
		return dao.consultar(parametros);
	}
}
